Method and system for controlling a movable object using machine-readable code

ABSTRACT

A method for controlling a movable object includes obtaining, by one or more processors of the movable object, an image including a machine-readable code configured to store a set of operation data for controlling the movable object; processing the image to retrieve the machine-readable code and the set of operation data; and adjusting one or more operation parameters of the movable object based on the set of operation data to control an operation of the movable object. The set of operation data includes navigation data including one or more data items selected from a group consisting of one or more waypoints, a longitude, a latitude, an altitude, one or more waypoints of a path, and one or more points of interest

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation U.S. application Ser. No. 16/241,103,filed on Jan. 7, 2019, which is a continuation of InternationalApplication No. PCT/CN2016/089220, filed on Jul. 7, 2016, the entirecontents of both of which are incorporated herein by reference.

TECHNICAL FIELD

The disclosed embodiments relate generally to controlling a movableobject and more particularly, but not exclusively, to control a movableobject using machine-readable code.

BACKGROUND

Movable objects such as unmanned aerial vehicles (UAVs) can be used forperforming surveillance, reconnaissance, and exploration tasks formilitary and civilian applications. A movable object may carry a payloadconfigured to perform a specific function, such as capturing images ofthe surrounding environment or tracking a specific target. Movementcontrol information for controlling a movable object is typicallyreceived by the movable object from a remote device. Edit and/ortransmission of movement control information from the remote device tothe movable object are important to the operation of the movable object.

SUMMARY

There is a need for systems and methods for operating a movable objectusing a fast and simple way of editing and transmitting movement controlinformation (e.g., operation data) between a movable object and acontrol unit. Such systems and methods optionally complement or replaceconventional methods for controlling a movable object. By encoding themovement control information in a machine readable code, and by makingthe machine readable code available to a movable object for operatingthe movable object, some embodiments of the present application cansignificantly improve the efficiency and convenience of managing themovement control information. Additionally, the movement controlinformation can be easily shared among different users and/or differentmovable objects.

In accordance with some embodiments, a method for operating a movableobject using a machine readable code comprises: obtaining an image bythe movable object. The image includes a machine-readable codeconfigured to store a set of operation data for controlling the movableobject. The method further comprises processing, by the movable object,the image to retrieve the machine-readable code and the set of operationdata. The movable object further adjusts one or more operationparameters of the movable object based on the set of operation data.

In accordance with some embodiments, an unmanned aerial vehicle (UAV)may comprise a propulsion system, one or more sensors, an imagingdevice, and one or more processors coupled to the propulsion system, theone or more sensors, and the imaging device. The one or more processorsare configured for performing the operations of the above method. Inaccordance with some embodiments, a system may comprise an imagingdevice; one or more processors coupled to the imaging device; memory;and one or more programs. The one or more programs are stored in thememory and configured to be executed by the one or more processors. Theone or more programs including instructions for performing theoperations of the above method. In accordance with some embodiments, anon-transitory computer-readable storage medium has stored thereininstructions that, when executed by the movable object, cause themovable object to perform the operations of the above method.

In accordance with some embodiments, a method for controlling a movableobject using a machine readable code comprises: obtaining an image by acomputing device in communication with the movable object. The imageincludes a machine-readable code configured to store a set of operationdata for controlling the movable object. The method further comprisesprocessing, by the computing device, the image to retrieve data forcontrolling the movable object. The computing device further sends thedata for controlling the movable object to the movable object foradjusting one or more operation parameters of the movable object.

In accordance with some embodiments, a computing device may comprise oneor more processors, memory, and one or more programs. The computingdevice is in communication with a movable object and is configured tocontrol the movable object. The one or more programs are stored in thememory and configured to be executed by the one or more processors. Theone or more programs including instructions for performing theoperations of the above method. In accordance with some embodiments, anon-transitory computer-readable storage medium has stored thereininstructions that, when executed by the movable object, cause themovable object to perform the operations of the above method.

In accordance with some embodiments, a method for controlling a movableobject using a machine readable code comprises: receiving a set ofoperation data including one or more data items for controlling amovable object; generating a machine-readable code based on the one ormore data items of the set of operation data; and making themachine-readable code available to the movable object for adjusting oneor more operation parameters of the movable object.

In accordance with some embodiments, a system may comprise one or moreprocessors, memory, and one or more programs. The one or more programsare stored in the memory and configured to be executed by the one ormore processors. The one or more programs including instructions forperforming the operations of the above method. In accordance with someembodiments, a non-transitory computer-readable storage medium hasstored therein instructions that, when executed by the movable object,cause the movable object to perform the operations of the above method.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a movable object environment, in accordance with someembodiments.

FIG. 2 illustrates a movable object, in accordance with someembodiments.

FIG. 3 is a diagram illustrating a method of generating a machinereadable code for controlling a movable object, in accordance with someembodiments.

FIGS. 4A-4B illustrate an exemplary user interface for receiving theoperation data, in accordance with some embodiments.

FIG. 5 illustrates an exemplary process of receiving operation data, inaccordance with some embodiments.

FIG. 6 is a diagram illustrating a method for controlling a movableobject, in accordance with some embodiments.

FIG. 7 illustrates an exemplary process of controlling a movable objectusing a machine readable code, in accordance with some embodiments.

FIG. 8 illustrates an exemplary process of controlling a movable objectusing a machine readable code, in accordance with some embodiments.

FIG. 9 is a diagram illustrating a method for controlling a movableobject, in accordance with some embodiments.

FIG. 10 illustrates an exemplary process of controlling a movable objectusing a machine readable code, in accordance with some embodiments.

FIG. 11 illustrates an exemplary process of controlling a movable objectusing a machine readable code, in accordance with some embodiments.

FIG. 12 illustrates an exemplary process of sharing a machine readablecode for controlling a movable object, in accordance with someembodiments.

FIG. 13 illustrates an exemplary process of sharing a machine readablecode for controlling a movable object, in accordance with someembodiments.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the various described embodiments. However,it will be apparent to one of ordinary skill in the art that the variousdescribed embodiments may be practiced without these specific details.In other instances, well-known methods, procedures, components,circuits, and networks have not been described in detail so as not tounnecessarily obscure aspects of the embodiments.

The following description uses an unmanned aerial vehicle (UAV) as anexample of a movable object. UAVs include, e.g., fixed-wing aircraftsand rotary-wing aircrafts such as helicopters, quadcopters, and aircrafthaving other numbers and/or configurations of rotors. It will beapparent to those skilled in the art that other types of movable objectsmay be substituted for UAVs as described below.

Embodiments consistent with the present disclosure provide techniquesrelated to controlling UAVs using operation data (e.g., includingnavigation data and/or operation parameters) stored in amachine-readable code (e.g., a two-dimensional quick response (QR)code). The machine-readable code can be captured by an imaging sensorborne by the UAV. The machine-readable code can be processed by the UAVor a control unit in communication with the UAV to obtain the operationdata. Using a machine-readable code can provide convenience andefficiency for storing, editing, and/or updating operation data forcontrolling a UAV.

FIG. 1 illustrates a movable object environment 100, in accordance withsome embodiments. The movable object environment 100 includes a movableobject 102. In some embodiments, the movable object 102 includes acarrier 104 and/or a payload 106.

In some embodiments, the carrier 104 is used to couple the payload 106to the movable object 102. In some embodiments, the carrier 104 includesan element (e.g., a gimbal and/or damping element) to isolate thepayload 106 from movement of the movable object 102 and/or the movementmechanism 114. In some embodiments, the carrier 104 includes an elementfor controlling movement of the payload 106 relative to the movableobject 102.

In some embodiments, the payload 106 is coupled (e.g., rigidly coupled)to the movable object 102 (e.g., coupled via carrier 104) such that thepayload 106 remains substantially stationary relative to movable object102. For example, the carrier 104 is coupled to the payload 106 suchthat the payload is not movable relative to the movable object 102. Insome embodiments, the payload 106 is mounted directly to the movableobject 102 without requiring the carrier 104. In some embodiments, thepayload 106 is located partially or fully within the movable object 102.

In some embodiments, a control unit 108 communicates with the movableobject 102, e.g., to provide control instructions to the movable object102 and/or to display information received from the movable object 102.Although the control unit 108 is typically a portable (e.g., handheld)device, the control unit 108 need not be portable. In some embodiments,the control unit 108 is a dedicated control device (e.g., for themovable object 102), a laptop computer, a desktop computer, a tabletcomputer, a gaming system, a wearable device (e.g., glasses, a glove,and/or a helmet), a microphone, a portable communication device (e.g., amobile telephone) and/or a combination thereof.

In some embodiments, an input device of the control unit 108 receivesuser input to control aspects of the movable object 102, the carrier104, the payload 106, and/or a component thereof. Such aspects include,e.g., orientation, position, orientation, velocity, acceleration,navigation, and/or tracking. For example, a position of an input deviceof the control unit 108 (e.g., a position of a component of the inputdevice) is manually set by a user to a position corresponding to aninput (e.g., a predetermined input) for controlling the movable object102. In some embodiments, the input device is manipulated by a user toinput control instructions for controlling the navigation of the movableobject 102. In some embodiments, an input device of control unit 108 isused to input a flight mode for the movable object 102, such as autopilot or navigation according to a predetermined navigation path.

In some embodiments, a display of the control unit 108 displaysinformation generated by the movable object sensing system 210, thememory 204, and/or another system of the movable object 102. Forexample, the display displays information about the movable object 102,the carrier 104, and/or the payload 106, such as position, orientation,orientation, movement characteristics of the movable object 102, and/ordistance between the movable object 102 and another object (e.g., atarget and/or an obstacle). In some embodiments, information displayedby a display of control unit 108 includes images captured by an imagingdevice 216 (FIG. 2), tracking data (e.g., a graphical tracking indicatorapplied to a representation of a target), and/or indications of controldata transmitted to the movable object 102. In some embodiments,information displayed by the display of the control unit 108 isdisplayed in substantially real-time as information is received from themovable object 102 and/or as image data is acquired. In someembodiments, the display of the control unit 108 is a touchscreendisplay.

In some embodiments, the movable object environment 100 includes acomputing device 110. The computing device 110 is, e.g., a servercomputer, a cloud server, a desktop computer, a laptop computer, atablet, or another portable electronic device (e.g., a mobiletelephone). In some embodiments, the computing device 110 is a basestation that communicates (e.g., wirelessly) with the movable object 102and/or the control unit 108. In some embodiments, the computing device110 provides data storage, data retrieval, and/or data processingoperations, e.g., to reduce the processing power and/or data storagerequirements of the movable object 102 and/or the control unit 108. Forexample, the computing device 110 is communicatively connected to adatabase and/or the computing device 110 includes a database. In someembodiments, the computing device 110 is used in lieu of or in additionto the control unit 108 to perform any of the operations described withregard to the control unit 108.

In some embodiments, the movable object 102 communicates with a controlunit 108 and/or a computing device 110, e.g., via wirelesscommunications 112. In some embodiments, the movable object 102 receivesinformation from the control unit 108 and/or the computing device 110.For example, information received by the movable object 102 includes,e.g., control instructions for controlling movable object 102. In someembodiments, the movable object 102 transmits information to the controlunit 108 and/or the computing device 110. For example, informationtransmitted by the movable object 102 includes, e.g., images and/orvideo captured by the movable object 102.

In some embodiments, communications between the computing device 110,the control unit 108 and/or the movable object 102 are transmitted via anetwork (e.g., Internet 116) and/or a wireless signal transmitter (e.g.,a long range wireless signal transmitter) such as a cellular tower 118.In some embodiments, a satellite (not shown) is a component of Internet116 and/or is used in addition to or in lieu of the cellular tower 118.

In some embodiments, information communicated between the computingdevice 110, the control unit 108 and/or the movable object 102 includecontrol instructions. Control instructions include, e.g., navigationinstructions for controlling navigational parameters of the movableobject 102 such as position, orientation, orientation, and/or one ormore movement characteristics of the movable object 102, the carrier104, and/or the payload 106. In some embodiments, control instructionsinclude instructions directing movement of one or more of the movementmechanisms 114. For example, control instructions are used to controlflight of a UAV.

In some embodiments, control instructions include information forcontrolling operations (e.g., movement) of the carrier 104. For example,control instructions are used to control an actuation mechanism of thecarrier 104 so as to cause angular and/or linear movement of the payload106 relative to the movable object 102. In some embodiments, controlinstructions adjust movement of the carrier 104 relative to the movableobject 102 with up to six degrees of freedom.

In some embodiments, control instructions are used to adjust one or moreoperational parameters for the payload 106. For example, controlinstructions include instructions for adjusting an optical parameter(e.g., an optical parameter of the imaging device 216). In someembodiments, control instructions include instructions for adjustingimaging properties and/or image device functions, such as capturing animage, initiating/ceasing video capture, powering an imaging device 216on or off, adjusting an imaging mode (e.g., capturing still images orcapturing video), adjusting a distance between left and right componentsof a stereographic imaging system, and/or adjusting a position,orientation, and/or movement (e.g., pan rate, pan distance) of a carrier104, a payload 106 and/or an imaging device 216.

In some embodiments, when control instructions are received by movableobject 102, the control instructions change parameters of and/or arestored by memory 204 (FIG. 2) of movable object 102.

FIG. 2 illustrates an exemplary movable object 102, in accordance withsome embodiments. The movable object 102 typically includes one or moreprocessor(s) 202, a memory 204, a communication system 206, a movableobject sensing system 210, and one or more communication buses 208 forinterconnecting these components.

In some embodiments, the movable object 102 is a UAV and includescomponents to enable flight and/or flight control. In some embodiments,the movable object 102 includes communication system 206 with one ormore network or other communications interfaces (e.g., via which flightcontrol instructions are received), one or more movement mechanisms 114,and/or one or more movable object actuators 212 (e.g., to cause movementof movement mechanisms 114 in response to received controlinstructions). Although the movable object 102 is depicted as anaircraft, this depiction is not intended to be limiting, and anysuitable type of movable object can be used.

In some embodiments, the movable object 102 includes movement mechanisms114 (e.g., propulsion mechanisms). Although the plural term “movementmechanisms” is used herein for convenience of reference, “movementmechanisms 114” refers to a single movement mechanism (e.g., a singlepropeller) or multiple movement mechanisms (e.g., multiple rotors). Themovement mechanisms 114 include one or more movement mechanism typessuch as rotors, propellers, blades, engines, motors, wheels, axles,magnets, nozzles, and so on. The movement mechanisms 114 are coupled tothe movable object 102 at, e.g., the top, bottom, front, back, and/orsides. In some embodiments, the movement mechanisms 114 of a singlemovable object 102 include multiple movement mechanisms of the sametype. In some embodiments, the movement mechanisms 114 of a singlemovable object 102 include multiple movement mechanisms with differentmovement mechanism types. The movement mechanisms 114 are coupled to themovable object 102 using any suitable means, such as support elements(e.g., drive shafts) and/or other actuating elements (e.g., the movableobject actuators 212). For example, a movable object actuator 212receives control signals from the processor(s) 202 (e.g., via thecontrol bus 208) that activates the movable object actuator 212 to causemovement of a movement mechanism 114. For example, the processor(s) 202include an electronic speed controller that provides control signals toa movable object actuator 212.

In some embodiments, the movement mechanisms 114 enable the movableobject 102 to take off vertically from a surface or land vertically on asurface without requiring any horizontal movement of the movable object102 (e.g., without traveling down a runway). In some embodiments, themovement mechanisms 114 are operable to permit the movable object 102 tohover in the air at a specified position and/or orientation. In someembodiments, one or more of the movement mechanisms 114 are controllableindependently of one or more of the other movement mechanisms 114. Forexample, when the movable object 102 is a quadcopter, each rotor of thequadcopter is controllable independently of the other rotors of thequadcopter. In some embodiments, multiple movement mechanisms 114 areconfigured for simultaneous movement.

In some embodiments, the movement mechanisms 114 include multiple rotorsthat provide lift and/or thrust to the movable object 102. The multiplerotors are actuated to provide, e.g., vertical takeoff, verticallanding, and hovering capabilities to the movable object 102. In someembodiments, one or more of the rotors spin in a clockwise direction,while one or more of the rotors spin in a counterclockwise direction.For example, the number of clockwise rotors is equal to the number ofcounterclockwise rotors. In some embodiments, the rotation rate of eachof the rotors is independently variable, e.g., for controlling the liftand/or thrust produced by each rotor, and thereby adjusting the spatialdisposition, velocity, and/or acceleration of the movable object 102(e.g., with respect to up to three degrees of translation and/or up tothree degrees of rotation).

In some embodiments, the memory 204 stores one or more instructions,programs (e.g., sets of instructions), modules, controlling systemsand/or data structures, collectively referred to as “elements” herein.One or more elements described with regard to the memory 204 areoptionally stored by the control unit 108, the computing device 110,and/or another device. In some embodiments, imaging device 216 includesmemory that stores one or more parameters described with regard to thememory 204.

In some embodiments, the memory 204 stores a controlling systemconfiguration that includes one or more system settings (e.g., asconfigured by a manufacturer, administrator, and/or user). For example,identifying information for the movable object 102 is stored as a systemsetting of the system configuration. In some embodiments, thecontrolling system configuration includes a configuration for theimaging device 216. The configuration for the imaging device 216 storesparameters such as position, zoom level and/or focus parameters (e.g.,amount of focus, selecting autofocus or manual focus, and/or adjustingan autofocus target in an image). Imaging property parameters stored bythe imaging device configuration include, e.g., image resolution, imagesize (e.g., image width and/or height), aspect ratio, pixel count,quality, focus distance, depth of field, exposure time, shutter speed,and/or white balance. In some embodiments, parameters stored by theimaging device configuration are updated in response to controlinstructions (e.g., generated by processor(s) 202 and/or received by themovable object 102 from control unit 108 and/or the computing device110). In some embodiments, parameters stored by the imaging deviceconfiguration are updated in response to information received from themovable object sensing system 210 and/or the imaging device 216.

In some embodiments, a controlling system performs imaging deviceadjustment. The imaging device adjustment module stores, e.g.,instructions for adjusting a distance between an image sensor and anoptical device of an imaging device 216, e.g., instructions forcontrolling an imaging device actuator. In some embodiments, one or moreinstructions for performing imaging device adjustment are stored in thememory 204.

In some embodiments, the controlling system performs an autofocusoperation. For example, the autofocus operation is performed, e.g.,periodically, when a device determines from image analysis that a focuslevel has fallen below a focus level threshold, in response adetermination that movable object 102 and/or an image subject (e.g., atarget or a remote object) has moved by more than a threshold distance,and/or in response to user input. In some embodiments, user input (e.g.,received at control unit 108 and/or computing device 110) initiatesand/or adjusts an autofocus mode. In some embodiments, user inputindicates one or more regions (e.g., in an image captured by imagingdevice 216, such as an image displayed by control unit 108 and/orcomputing device 110) to be used and/or prioritized for an autofocusoperation. In some embodiments, the autofocus module generates controlinstructions for moving an optical device relative to an image sensor inaccordance with an image distance value determined by an image distancedetermination module. In some embodiments, one or more instructions forperforming an autofocus operation are stored in the memory 204.

In some embodiments, the controlling system performs image distancedetermination, e.g., to determine an object distance and/or an imagedistance in accordance with the operations described herein. Forexample, the image distance determination module uses sensor data fromone or more depth sensors and one or more orientation sensors of amovable object to determine an image distance and generate a controlinstruction for moving an optical device relative to an image sensor inaccordance with the determined image distance. In some embodiments, oneor more instructions for performing image distance determination arestored in the memory 204.

The above identified controlling system, modules, and/or programs (e.g.,sets of instructions) need not be implemented as separate softwareprograms, procedures or modules, and thus various subsets of thesemodules may be combined or otherwise re-arranged in various embodiments,and stored in the memory 204. In some embodiments, the controllingsystem includes a subset of the modules and data structures identifiedabove. Furthermore, the memory 204 may store additional modules and datastructures not described above. In some embodiments, the programs,modules, and data structures stored in the memory 204, or anon-transitory computer readable storage medium of memory 204, provideinstructions for implementing respective operations in the methodsdescribed below. In some embodiments, some or all of these modules maybe implemented with specialized hardware circuits that subsume part orall of the module functionality. One or more of the above identifiedelements may be executed by one or more processors 202 of the movableobject 102. In some embodiments, one or more of the above identifiedmodules are stored on one or more storage devices of a device remotefrom the movable object (such as memory of the control unit 108, thecomputing device 110, and/or the imaging device 216) and/or executed byone or more processors of a device remote from the movable object 102(such as processor(s) of the control unit 108, the computing device 110,and/or the imaging device 216).

The communication system 206 enables communication with the control unit108 and/or the computing device 110, e.g., via wireless signals 112. Thecommunication system 206 includes, e.g., transmitters, receivers, and/ortransceivers for wireless communication. In some embodiments, thecommunication is one-way communication, such that data is only receivedby the movable object 102 from the control unit 108 and/or the computingdevice 110, or vice-versa. In some embodiments, communication is two-waycommunication, such that data is transmitted in both directions betweenthe movable object 102 and the control unit 108 and/or the computingdevice 110. In some embodiments, the movable object 102, the controlunit 108, and/or the computing device 110 are connected to the Internet116 or other telecommunications network, e.g., such that data generatedby the movable object 102, the control unit 108, and/or the computingdevice 110 is transmitted to a server for data storage and/or dataretrieval (e.g., for display by a website).

In some embodiments, the sensing system 210 of the movable object 102includes one or more sensors. In some embodiments, one or more sensorsof the movable object sensing system 210 are mounted to the exterior,located within, or otherwise coupled to the movable object 102. In someembodiments, one or more sensors of the movable object sensing system210 are components of and/or coupled to the carrier 104, the payload106, and/or the imaging device 216. Where sensing operations aredescribed herein as being performed by the movable object sensing system210, it will be recognized that such operations are optionally performedby one or more sensors of the carrier 104, the payload 106, and/or theimaging device 216 in addition to and/or in lieu of one or more sensorsof the movable object sensing system 210.

FIG. 3 is a diagram illustrating a method 300 of generating a machinereadable code for controlling the movable object 102, in accordance withsome embodiments. The method 300 is performed by a device or a system(hereinafter “the system”). The system includes one or more devices,such as the computing device 110, the control unit 108, or the movableobject 102 (FIG. 1). In some embodiments, the method 300 is performed byother electronic device(s), such as a mobile device paired with thecontrol unit 108 for operating the movable object 102. Operationsperformed in FIG. 3 correspond to instructions stored in computermemories or other computer-readable storage mediums of the device or thesystem.

In some embodiments, the system receives (310) a set of operation datafor controlling the movable object 102. The set of operation dataincludes one or more data items (also referred as “data fields”). Insome embodiments, the set of operation data comprises navigation dataincluding, but is not limited to, one or more waypoints, one or morepoints of interest, and/or a destination of the navigation path. The setof operation data may comprise navigation data including a longitude, alatitude, and/or an altitude. In some embodiments, the set of operationdata comprises control data for controlling a position of the movableobject 102. The control data may include a roll angle, a pitch angle, ayaw angle, a translation parameter, a rotation parameter, a speed,and/or an acceleration. In some embodiments, the set of operation datacomprises gimbal control data. The gimbal control data may comprise agimbal pitch angle, a gimbal roll angle, and/or a gimbal yaw angle. Insome embodiments, the set of operation data comprises imaging deviceparameters (e.g., camera parameters). The camera parameters may comprisea focal length, a zoom parameter, a shutter speed, and/or an exposuretime of the imaging device.

FIGS. 4A-4B are exemplary implementations of user interface 400 forreceiving the operation data, in accordance with some embodiments. Insome embodiments, the user interface 400 is a display screen or a touchscreen display of the computing device 110, the control unit 108, or amobile device paired with the control unit 108 for controlling themovable object 102.

In some embodiments as shown in FIG. 4A, the system can receive theoperation data from a user input on the system. In some embodiments, theoperation data includes data for one or more data fields 410 (e.g., alongitude, a latitude, and a gimbal pitch rotation). A user can directlyinput data 412 (e.g., 113.954002°, 22.537001°, and 30.0°) to fill theone or more data fields 410 (e.g., a longitude, a latitude, and a gimbalpitch rotation) respectively. The user may use an input device, e.g., asoft keyboard or a hard keyboard, to input the operation data on thedisplay of the computing device 110, the control unit 108, or a mobiledevice paired with the control unit 108. The user input may also includean audio input via a microphone, or a gesture input recognition via acamera of the system to provide the operation data to the system. A QRcode 414 (represented as box 414 in FIG. 4A) can be generated based onthe operation data 412 from the user input.

In some embodiments as shown in FIG. 4B, the system can receive theoperation data from a user interaction 422 with a map application 420running on the system. The user may indicate a point of interest, adestination, a change to navigation path, a change to a controlparameter, a change to a gimbal parameter, and/or a change to an imagingdevice parameter on the map 420. For example, the user points at, taps,or audio inputs an identifier of a point of interest displayed on themap. The system can obtain the operation data based on the userinteraction. A QR code 424 (represented by box 424 in FIG. 4B) can begenerated based on the operation data obtained from the user interactionwith the map.

FIG. 5 is an exemplary implementation illustrating a process ofreceiving operation data from an operation of the movable object 102, inaccordance with some embodiments. In some embodiments, the operation isa manual operation. For example, a user manually controls the movableobject 102 using the control unit 108. The operation data can beobtained from the manual operation. For example, the control unit 108collects data associated with one or more waypoints. In someembodiments, the operation is an auto pilot operation, e.g., the movableobject 102 is under autonomous moving control. The control unit 108 canbe pre-programmed to record operation data during the auto pilotoperation. The operation data can also be obtained from the auto pilotprogram. The operation data obtained from the operation of the movableobject 102 can be used for generating a QR code 510 (represented by box510 in FIG. 5) as shown on the display of the remote control 108.

In some embodiments, the operation data and/or a carrier of theoperation data is captured by the imaging device 216 of the movableobject 102. For example, the imaging device 216 captures an imageincluding the operation data. In some embodiments, the image isdisplayed on a sign 502 (e.g., at a tourist attraction spot), on abillboard (e.g., an advertisement billboard), or is projected by aprojector to an object (e.g., the ground). In some embodiments, theimage displays the operation data. Alternatively, the operation data isembedded in the image using any suitable format, e.g., in a machinereadable code (represented by box 504 in FIG. 5) included in the image.

In some embodiments, the operation data is shared between different useraccounts using an application (e.g., a social networking application ora movable object control application) or a message (e.g., an SMSmessage). For example, the operation data is received from a contact ofthe user of the system. In some embodiments, the operation data isretrieved from a content provider 506 (e.g., a web server 506) via theInternet 116. In some embodiments, the system generates a URL directedto a downloadable address for retrieving the operation data. The machinereadable code may be encoded to store the URL.

In some embodiments, the web server 506 includes a third-party serverconfigured to provide various types of services. Exemplary third-partyservices including books, business, social networking, communication,contests, education, entertainment, fashion, finance, food and drink,games, health and fitness, lifestyle, local information, movies,television, music and audio, news, photos, video, productivity,reference material, security, shopping, sports, travel, utilities, andthe like. In some embodiments, the web server 506 hosts a website thatprovides web pages including operation data for controlling movableobjects. Alternatively or additionally, the web server 506 hosts anapplication that is used by computing devices (e.g., remote control 108or a mobile device paired with remote control 108). In some embodiments,the web server 506 is a single computing device, while in otherembodiments, the web server 506 is implemented by multiple computingdevices working together to perform the actions of a server system(e.g., cloud computing).

In some embodiments, after receiving the operation data, the systemvalidates the data format. Data for each data item is predetermined tohave in a certain format to be recognized by the system. In someexamples, the longitude and the latitude are predetermined to benumerical with certain number (e.g., 6) decimal places with units ofdegrees, the altitude is predetermined to be numerical with certainnumber (e.g., 2) decimal places with a unit of meters, the gimbalposition parameters (e.g., pitch, roll, and/or yaw) are predetermined tointegers with units of degrees. One or more way points may bepre-indexed, and the operation data may include an index numberrepresenting a certain way point. In some embodiments, the system alsovalidates the range of a respective data item to determine whether thedata is valid for controlling the movable object. For example, thelongitude data is in a range from −180° and 180°, and the latitude datais in a range from −90° and 90°. The system may auto-correct the formatof data in a certain data field. The system may also return an errormessage when one or more data items are in wrong formats.

Referring back to FIG. 3, in some embodiments, after receiving operationdata, the system generates (320) a machine readable code (e.g., QR code414 in FIG. 4A, or QR code 424 in FIG. 4B). The one or more items of theoperation data are encoded in the machine readable code. In someembodiments, the machine readable code is a one-dimensional barcodeincluding a plurality of lines and spaces of various widths. In someembodiments, the machine readable code is a two-dimensional barcode,such as a QR code. A QR code may use standardized encoding modes (e.g.,numeric, alphanumeric, byte/binary, and kanji) to efficiently storedata.

As shown FIG. 3, in some embodiments, after generating the machinereadable code, the system makes (330) the machine readable codeavailable to the movable object 102. In some embodiments, the systemdisplays an image including the machine readable code. In someembodiments, the image including the machine readable code is capturedby an imaging device of the system, such as the imaging device 216 ofthe movable object 102. One or more processors of the system (e.g., themovable object 102) can decode the machine readable code to retrieve theone or more data items of the operation data.

In some embodiments, the image including the machine readable code isprojected by a projector onto an object, e.g., the ground, and themovable object 102 can capture the projected image using the imagingdevice 216. The movable object 102 can process the image and retrievethe operation data from the machine readable code. In some embodiments,the image including the machine readable code can be displayed on orprojected onto a sign or a billboard for capturing by the movableobject.

In some embodiments, data use for operating the movable object 102 has apredetermined standard format. In some embodiments, the format is“waypoint-index longitude latitude gimbal-frame gimbal-roll gimbal-pitchgimbal-yaw velocity crc=value”. The data items are separated using aspace between two adjacent data items. For example, a set of data “1113.954002 22.537001 5.00 b 30.0 0.0 0.0 1 3.0 crc=fa09” includesinformation of (in sequence): waypoint No. 1 (i.e., indexed 1), alongitude of 113.954002°, a latitude of 22.537001°, an altitude of 5.00meters, using the movable object body as the reference system for thegimbal, a gimbal roll rotation of 30.0°, a gimbal pitch rotation of0.0°, a gimbal yaw rotation of 0.0°, imaging device state “on” (i.e.,indicated by state code “1”), maximum velocity until the next waypointbeing 3.0 meters/second, and an error-detecting code (e.g., a cyclicredundancy check (CRC) or a checksum) including a verification code of0xfa09. The data decoded from the QR code may be formatted in accordancewith the standard format to be recognized by the movable object 102 foradjusting the operation parameters of the movable object 012. Themovable object adjusts one or more operation parameters based on theoperation data decoded from the machine readable code.

In some embodiments, the system receives an update to a data item of theoperation data. The system can modify the operation data to incorporatethe update to the data item and generate another machine readable codeencoded with the updated data. The system can alternatively modify themachine readable code to reflect the update to the operation data. Thesystem further makes the updated machine readable code available to themovable object 102 for adjusting the operation parameters accordingly.

FIG. 6 is a diagram illustrating a method 600 for controlling themovable object 102, in accordance with some embodiments. The method 600is performed by the movable object 102 (FIGS. 1-2). In some embodiments,the method 600 is performed by other electronic device(s), such as thecontrol unit 108 (FIG. 1), the computing device 110 (FIG. 1), or amobile device paired with the control unit 108 for operating the movableobject 102. Operations performed in FIG. 6 correspond to instructionsstored in computer memories or other computer-readable storage mediumsof the device or the system.

In some embodiments, the movable object 102 obtains (610) an imageincluding a machine readable code. The machine readable code is encodedto store a set of operation data for controlling the movable object 102.The operation data includes navigation data, position control data,gimbal control data, and/or imaging device parameters as discussedearlier with reference to FIG. 3. In some embodiments, the movableobject 102 captures the image using the imaging device 216. In someembodiments, the movable object 102 processes (620) the image toretrieve the machine readable code. In some embodiments, one or moreprocessors of the movable object 102 execute instructions to decode themachine readable code to retrieve the set of operation data. In someembodiments, the movable object 102 adjusts (630) one or more operationparameters (e.g., control parameters) of the movable object 102 based onthe set of operation data.

FIG. 7 illustrates an exemplary process of controlling the movableobject 102 using a machine readable code, in accordance with someembodiments. In some embodiments, an image 702 including a machinereadable code 704 (represented by box 704 in FIG. 7) is displayed on anobject. In some embodiments, the image 702 is displayed on anadvertisement billboard, a tourist attraction sign, or on a displayscreen of an electronic device (e.g., a mobile phone or a tablet). Insome embodiments, the image 702 is projected by an electronic device,such as a projector, onto an object. For example, the image 702 isprojected onto a billboard or to the ground. In some embodiments, theprojector includes a light source that shines visible light, infrared(IR) light, or ultraviolet (UV) light. The imaging device 216 borne bythe movable object 102 is capable of detecting the corresponding lightemitted by the illumination source of the projector. In someembodiments, the image 702 and/or the machine readable code is sharedfrom a first user to a second user on an electronic device.

As shown in FIG. 7, the movable object 102 flies along a path 712 from afirst location 714 to a second location 716. In some embodiments, afirst set (e.g., an initial set) of operation data for controlling themovable object 102 is generated based on a manual operation or an autopilot operation of the movable object 102 at the first location 714. Theoperation data includes navigation data, position control data, gimbalcontrol data, and/or imaging device parameters as discussed earlier withreference to FIG. 3. A first set of control parameters (e.g., operationparameters) of the movable object 102 is generated based on the firstset of operation data. The operation parameters include adjustments ofan orientation, a position, an attitude, and/or one or more movementcharacteristics of the movable object 102, the carrier 108, and/or thepayload 110. In some embodiments, the operation parameters includeinstructions for changing a control parameter of imaging device 216and/or one or more sensors of the movable object sensing system 122,e.g., changing zoom, focus, or other characteristics associated with theimaging device 216.

The movable object 102 flies to the second location 716 and captures theimage 702 including the machine readable code 704. The machine readablecode 704 is encoded with a second set of operation data for controllingthe movable object 102. For example, the second set of operation dataincludes navigation data, such as a longitude and a latitude, of atourist attraction spot 706. In some embodiments, one or more data itemsin the second set of operation data (e.g., encoded in the machinereadable code 704) have higher resolutions than one or more data itemsin the first set of operation data (e.g., obtained at the first location714). In some embodiments, the first set of operation data correspondsto a first destination or a first waypoint that is different from asecond destination or a second waypoint associated with the second setof operation data.

In some examples, the first set of operation data includes locationinformation for a waypoint at the location 716. The movable object 102flies along the path 712 to arrive at the location 716 based on thefirst set of operation data. At the location 716, the movable objectcaptures the image 702. For example, the movable object captures theimage 702 using the imaging device 216. The movable object 102 processesthe image 702 to retrieve the second set of operation data from themachine readable code 704. The movable object 102 adjusts one or moreoperation parameters (e.g., position and speed of the movable object102) based on the second set of operation data (e.g., longitude andlatitude of the tourist attraction 706). The movable object 102 thenflies towards the tourist attraction 706 along a path 718. The path 718may be based on a manual operation, a semi-manual operation, or anauto-pilot operation of the movable object 102.

In some examples, after the movable object 102 captures the image 702 atthe location 716, the movable object 102 can download the image 702 viaa downlink communication channel to an electronic device 720.Alternatively, the movable object 102 can process the image 702 toretrieve the machine readable code 704 and transmit the machine readablecode 704 via the downlink to the electronic device 720. The electronicdevice 720 may be the control unit 108 or a mobile device paired withthe control unit 108. The electronic device 720 can share the image 702with one or more other electronic devices (not shown) associated withcontrolling another movable object (not shown) to fly to the touristattract 706.

FIG. 8 illustrates an exemplary process of controlling the movableobject 102 using a machine readable code, in accordance with someembodiments. In some embodiments, an electronic device 802 is incommunication with the movable object 102. The electronic device 802includes an imaging device 804. In some embodiments, the electronicdevice 802 is the control unit 108 or a mobile device paired with thecontrol unit 108. The electronic device 802 obtains a machine readablecode 812 (represented by box 812 in FIG. 8) or an image including themachine readable code 812. The machine readable code 812 is encoded witha set of operation data for controlling the movable object 102. In someembodiments, the electronic device 802 captures the image includingmachine readable code 812 using the imaging device 804. In someexamples, the image including the machine readable code 812 is displayedon a billboard, a tourist attraction sign. In other examples, the imageis projected on an object by a projector. In some embodiments, theelectronic device 802 obtains the machine readable code 812 or the imageincluding the machine readable code from a website or from a friend'ssharing. In some embodiments, the electronic device 802 generates themachine readable code 812 based on the operation data. For example, theelectronic device 802 receives the operation data based on a user inputand/or a user interaction with the electronic device 802 as discussedwith reference to FIGS. 4A-4B. The electronic device 802 can alsoretrieve the operation data or download the operation data from awebsite or from a friend's sharing.

In some embodiments, the electronic device 802 transmits the machinereadable code 812 or the image including the machine readable code 812via an uplink communication channel to the movable object 102. Themovable object 102 includes a decoding module 822 for decoding themachine readable code 812 to retrieve the operation data. The movableobject 102 then adjusts the operation parameters in accordance with theoperation data.

FIG. 9 is a diagram illustrating a method 900 for controlling themovable object 102, in accordance with some embodiments. The method 900is performed by an electronic device (e.g., electronic device 1002 inFIG. 10, or electronic device 1102 in FIG. 11), such as the control unit108 (FIG. 1), the computing device 110 (FIG. 1), or a mobile devicepaired with the control unit 108 for controlling the movable object 102.In some embodiments, the method 900 is performed by the movable object102 (FIGS. 1-2). Operations performed in FIG. 9 correspond toinstructions stored in computer memories or other computer-readablestorage mediums of the device or the system.

In some embodiments, the electronic device obtains (910) an imageincluding a machine readable code. FIG. 10 illustrates an exemplaryprocess of controlling the movable object 102 using a machine readablecode 1012 (represented by box 1012 in FIG. 10), in accordance with someembodiments. The machine readable code 1012 is encoded to store a set ofoperation data for controlling the movable object 102. The operationdata includes navigation data, position control data, gimbal controldata, and/or imaging device parameters as discussed earlier withreference to FIG. 3.

In some embodiments, the electronic device 1002 includes an imagingdevice 1004 for capturing the image including the machine readable code1012. In some embodiments, the electronic device 1002 receives the imageor the machine readable code 1012 from a friend's sharing or from awebsite. In some embodiments, the electronic device 1002 generates themachine readable code using the operation data. The operation data maybe retrieved from a website, shared by a friend, or captured by theimaging device of the electronic device from an image including theoperation data. The operation data may also be received from a userinput or a user interaction with the electronic device (e.g., FIGS.4A-4B). In some embodiments, the image including the machine readablecode 1012 is projected by a projector onto an object, such as the groundor a billboard. In some examples, the image including the machinereadable code 1012 is displayed on a billboard or a tourist attractionsign.

In some embodiments, the electronic device 1002 processes (920) theimage to retrieve data for controlling the movable object 102. In someembodiments, the electronic device 1002 processes the image to retrievethe machine readable code 1012. The electronic device 1002 includes adecoding module 1006 for converting or decoding the machine readablecode 1012 to retrieve the operation data for controlling the movableobject 102. The electronic device 1002 then sends (930) the operationdata to the movable object 102 via an uplink communication channel foradjusting one or more operation parameters of the movable object 102. Insome embodiments, the electronic device 1002 processes the image toretrieve the machine readable code 1012. The electronic device 1002sends (930) the machine readable code 1012 to the movable object 102 viathe uplink. The movable object 102 decodes the machine readable code1012 to retrieve the operation data (e.g., FIG. 8).

In some embodiments, the movable object 102 flies from a first location1016 via a path 1014 to a second location 1018. At the first location1016, a first set of operation data is used for controlling the movableobject 102. At the second location 1018, a second set of operation datais received from the electronic device 1002. The second set of operationdata is retrieved from the machine readable code 1012 which is decodedby the electronic device 1002. In some embodiments, one or more dataitems of the second set of operation data have higher resolutions thanone or more data items of the first set of operation data. In someembodiments, first set of operation data and the second set of operationdata correspond to distinct destinations.

In some embodiments, after the electronic device 1002 decodes themachine readable code 1012, the electronic device 1002 further edits theset of operation data. The electronic device 1002 then transmits theedited operation data to the movable object 102 via the uplinkcommunication channel.

FIG. 11 illustrates an exemplary process of controlling the movableobject 102 using a machine readable code 1112 (represented by box 1112in FIG. 11), in accordance with some embodiments. In some embodiments,the movable object 102 captures an image including the machine readablecode 1112 using the imaging device 216. In some embodiments, the imageincluding the machine readable code 1112 is displayed on a sign (e.g.,for a tourist attraction spot, FIG. 5), on a billboard (e.g., anadvertisement billboard), or is projected by a projector to an object(e.g., the ground). The movable object 102 transmits the image or themachine readable code 1112 to an electronic device 1102 via a downlinkcommunication channel. The electronic device 1102 may be the controlunit 108 (FIG. 1), the computing device 110 (FIG. 1), or a mobile devicepaired with the control unit 108 for controlling the movable object 102.The electronic device 1102 includes a decoding module 1106 for decodingthe machine readable code 1112 to retrieve the operation data. Theelectronic device 1102 then sends the operation data decoded from themachine readable code 1112 to the movable object 102 via the uplinkcommunication channel. The movable object 102 receives the operationdata and adjusts one or more operation parameters for controlling themovable object 102.

FIG. 12 illustrates an exemplary process of sharing a machine readablecode 1212 (represented by box 1212 in FIG. 12) for controlling themovable object(s) 102 (e.g., movable objects 102-1 and 102-2), inaccordance with some embodiments. The process illustrated in FIG. 12 canbe used for sharing, among two or more movable objects, a navigationpath and/or one or more point of interests. In some embodiments, themachine readable code 1212 is encoded to store a set of operation datafor controlling the movable object(s) 102. The operation data includesnavigation data, position control data, gimbal control data, and/orimaging device parameters as discussed earlier with reference to FIG. 3.In some embodiments, the machine readable code 1212 and/or the operationdata encoded by the machine readable code 1212 can be shared between themovable object 102-1 and the movable object 102-2. The movable object102-1 and the movable object 102-2 are in communication with and arecontrolled by control unit 108-1 and control unit 108-2 respectively.

In some embodiments, the movable object 102-1 obtains an image includingthe machine readable code 1212. In some embodiments, the image isdisplayed on a sign or projected onto an object. The image is capturedby the imaging device 216-1 borne by the movable object 102-1. In someother embodiments, the image is received by the movable object 102-1,e.g., by uploading to the movable object 102-1 from a remote control(different from the remote control 108-1) or a mobile device via anuplink communication channel. The movable object 102-1 processes theobtained image to retrieve the machine readable code 1212. In yet someother embodiments, the movable object 102-1 generates the machinereadable code 1212 based on operation data of the movable object 102-1,such as one or more waypoints or a destination point. The movable object102-1 sends the machine readable code 1212 using a downlinkcommunication channel to the control unit 108-1. Alternatively, themovable object 102-1 sends the captured image to the control unit 108-1.The control unit 108-1 processes the image to retrieve the machinereadable code 1212.

In some alternative embodiments as illustrated in FIG. 12, without themovable object 102-1 capturing the machine readable code 1212, thecontrol unit 108-1 generates the machine readable code 1212 based on anoperation of the movable object 102-1. The operation can be a manualcontrol or an autopilot mode of the movable object 102-1.

In some embodiments, the control unit 108-1 is in communication with thecontrol unit 108-2 via the internet 116 (FIG. 1). The control unit 108-1sends the machine readable code 1212 to the control unit 108-2. Thecontrol unit 108-2 processes the machine readable code 1212 to retrievethe operation data. The control unit 108-2 sends the operation data viaan uplink communication channel to the movable object 102-2 forcontrolling the movable object 102-2 to fly along the same navigationpath and/or to visit the same points of interests as the movable object102-1 does.

In some alternative embodiments, the machine readable code 1212 isshared between the control unit 108-1 and the control unit 108-2directly or indirectly (e.g., via one or more other computing deviceswhich are configured to relay the shared content between the controlunit 108-1 and the control unit 108-2). In some embodiments, alternativeto or in combination with sharing the machine readable code 1212, thecontrol unit 108-1 processes the machine readable code 1212 to retrievethe operation data. The control unit 108-1 shares the operation datawith the control unit 108-2 for controlling the movable object 102-2.

FIG. 13 illustrates an exemplary process of sharing a machine readablecode 1312 (represented by box 1312 in FIG. 13) for controlling themovable object(s) 102 (e.g., movable objects 102-1 and 102-2), inaccordance with some embodiments. In some embodiments, the machinereadable code 1312 is encoded to store a set of operation data forcontrolling the movable object(s) 102. The operation data includesnavigation data, position control data, gimbal control data, and/orimaging device parameters as discussed earlier with reference to FIG. 3.In some embodiments, the machine readable code 1312 and/or the operationdata encoded by the machine readable code 1312 can be shared between themovable object 102-1 and the movable object 102-2 for sharing anavigation path and/or one or more waypoints. The movable object 102-1is in communication with and is controlled by a mobile device 1302-1paired with a control unit (not shown) for operating the movable object102-1. The movable object 102-2 is in communication with and iscontrolled by a mobile device 1302-2 paired with a control unit (notshown) for operating the movable object 102-2.

In some embodiments, the movable object 102-1 obtains an image includingthe machine readable code 1312. The image can be captured by the imagingdevice 216-1. The image can be received by the movable object 102-1 viaany suitable communication channel. Alternatively, the image can begenerated by the movable object 102-1 using operation data of themovable object 102-1. The movable object 102-1 processes the image toretrieve the machine readable code 1312 and sends the machine readablecode 1312 using a downlink communication channel to the mobile device1302-1. A user (e.g., John) of the mobile device 1302-1 shares themachine readable code 1312 using an application running on the mobiledevice 1302-1 with a contact (e.g., Jane). The application can be asocial networking application or a movable object control application.The mobile device 1302-1 is in communication with the mobile device1302-2 of Jane's via the Internet 116 (FIG. 1). The machine readablecode 1312 is displayed on the mobile device 1302-2. The machine readablecode 1312 can be shared between the mobile device 1302-1 and the mobiledevice 1302-2 directly or indirectly (e.g., via one or more othercomputing devices which are configured to relay the shared contentbetween the mobile device 1302-1 and the mobile device 1302-2). In someembodiments, alternative to or in combination with sharing the machinereadable code 1312, the mobile device 1302-1 processes the machinereadable code 1312 to retrieve the operation data. The mobile device1302-1 shares the operation data with the mobile device 1302-2 using theapplication as disclosed above.

As shown in FIG. 13, the mobile device 1302-2 sends an image includingthe machine readable code 1312 to a projector 1306. The projector 1306projects the image onto an object (not shown), such as the ground, awall, or a billboard, which is visible to the imaging device 216-2 ofthe movable object 102-2. The imaging device 216-2 captures theprojected image including the machine readable code 1312. The movableobject 102-2 processes the captured image to retrieve the operation dataencoded within the machine readable code 1312. The movable object 102-2adjusts one or more operation parameters in accordance with theoperation data, to follow the same navigation path or to fly to the samewaypoints as shared by the movable object 102-1.

Many features of the embodiments consistent with the present disclosurecan be performed in, using, or with the assistance of hardware,software, firmware, or combinations thereof. Consequently, features ofthe embodiments consistent with the present disclosure may beimplemented using a processing system. Exemplary processing systems(e.g., processor(s) 202) include, without limitation, one or moregeneral purpose microprocessors (for example, single or multi-coreprocessors), application-specific integrated circuits,application-specific instruction-set processors, field-programmable gatearrays, graphics processors, physics processors, digital signalprocessors, coprocessors, network processors, audio processors,encryption processors, and the like.

Features of the embodiments consistent with the present disclosure canbe implemented in, using, or with the assistance of a computer programproduct, such as a storage medium (media) or computer readable storagemedium (media) having instructions stored thereon/in which can be usedto program a processing system to perform any of the features presentedherein. The storage medium (e.g., the memory 204) can include, but isnot limited to, any type of disk including floppy disks, optical discs,DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs,EEPROMs, DRAMs, VRAMs, DDR RAMs, flash memory devices, magnetic oroptical cards, nanosystems (including molecular memory ICs), or any typeof media or device suitable for storing instructions and/or data.

Stored on any one of the machine readable medium (media), features ofthe embodiments consistent with the present disclosure can beincorporated in software and/or firmware for controlling the hardware ofa processing system, and for enabling a processing system to interactwith other mechanism utilizing the results of the embodiments. Suchsoftware or firmware may include, but is not limited to, applicationcode, device drivers, operating systems, and executionenvironments/containers.

Communication systems as referred to herein (e.g., the communicationsystem 206) optionally communicate via wired and/or wirelesscommunication connections. For example, communication systems optionallyreceive and send RF signals, also called electromagnetic signals. RFcircuitry of the communication systems convert electrical signalsto/from electromagnetic signals and communicate with communicationsnetworks and other communications devices via the electromagneticsignals. RF circuitry optionally includes well-known circuitry forperforming these functions, including but not limited to an antennasystem, an RF transceiver, one or more amplifiers, a tuner, one or moreoscillators, a digital signal processor, a CODEC chipset, a subscriberidentity module (SIM) card, memory, and so forth. Communication systemsoptionally communicate with networks, such as the Internet, alsoreferred to as the World Wide Web (WWW), an intranet and/or a wirelessnetwork, such as a cellular telephone network, a wireless local areanetwork (LAN) and/or a metropolitan area network (MAN), and otherdevices by wireless communication. Wireless communication connectionsoptionally use any of a plurality of communications standards, protocolsand technologies, including but not limited to Global System for MobileCommunications (GSM), Enhanced Data GSM Environment (EDGE), high-speeddownlink packet access (HSDPA), high-speed uplink packet access (HSUPA),Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPDA),long term evolution (LTE), near field communication (NFC), wideband codedivision multiple access (W-CDMA), code division multiple access (CDMA),time division multiple access (TDMA), Bluetooth, Wireless Fidelity(Wi-Fi) (e.g., IEEE 102.11a, IEEE 102.11ac, IEEE 102.11ax, IEEE 102.11b,IEEE 102.11g and/or IEEE 102.11n), voice over Internet Protocol (VoIP),Wi-MAX, a protocol for e-mail (e.g., Internet message access protocol(IMAP) and/or post office protocol (POP)), instant messaging (e.g.,extensible messaging and presence protocol (XMPP), Session InitiationProtocol for Instant Messaging and Presence Leveraging Extensions(SIMPLE), Instant Messaging and Presence Service (IMPS)), and/or ShortMessage Service (SMS), spread spectrum technology such as FASST orDESST, or any other suitable communication protocol, includingcommunication protocols not yet developed as of the filing date of thisdocument.

While various embodiments of consistent with the present disclosure havebeen described above, it should be understood that they have beenpresented by way of example, and not limitation. It will be apparent topersons skilled in the relevant art that various changes in form anddetail can be made therein without departing from the spirit and scopeof the invention.

Embodiments consistent with the present disclosure have been describedabove with the aid of functional building blocks illustrating theperformance of specified functions and relationships thereof. Theboundaries of these functional building blocks have often beenarbitrarily defined herein for the convenience of the description.Alternate boundaries can be defined so long as the specified functionsand relationships thereof are appropriately performed. Any suchalternate boundaries are thus within the scope and spirit of theinvention.

The terminology used in the description of the various describedembodiments herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used in thedescription of the various described embodiments and the appendedclaims, the singular forms “a,” “an,” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in accordance with a determination”or “in response to detecting,” that a stated condition precedent istrue, depending on the context. Similarly, the phrase “if it isdetermined [that a stated condition precedent is true]” or “if [a statedcondition precedent is true]” or “when [a stated condition precedent istrue]” may be construed to mean “upon determining” or “in response todetermining” or “in accordance with a determination” or “upon detecting”or “in response to detecting” that the stated condition precedent istrue, depending on the context.

The foregoing description of the embodiments consistent with the presentdisclosure has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. The breadth and scope of theembodiments consistent with the present disclosure should not be limitedby any of the above-described exemplary embodiments. Many modificationsand variations will be apparent to the practitioner skilled in the art.The modifications and variations include any relevant combination of thedisclosed features. The embodiments were chosen and described in orderto best explain the principles of the invention and its practicalapplication, thereby enabling others skilled in the art to understandthe invention for various embodiments and with various modificationsthat are suited to the particular use contemplated. It is intended thatthe scope of the invention be defined by the following claims and theirequivalence.

What is claimed is:
 1. A method for controlling a movable object,comprising: obtaining, by one or more processors of the movable object,an image including a machine-readable code configured to store a set ofoperation data for controlling the movable object, the set of operationdata including navigation data including one or more data items selectedfrom a group consisting of one or more waypoints, a longitude, alatitude, an altitude, one or more waypoints of a path, and one or morepoints of interest; processing the image to retrieve themachine-readable code and the set of operation data; and adjusting oneor more operation parameters of the movable object based on the set ofoperation data to control an operation of the movable object.
 2. Themethod of claim 1, wherein obtaining the image includes capturing theimage using an imaging device of the movable object.
 3. The method ofclaim 2, wherein the image is displayed on or projected by a projectoronto an object, the object including at least one of a sign, abillboard, or ground.
 4. The method of claim 1, wherein themachine-readable code includes a two-dimensional quick response (QR)code.
 5. The method of claim 1, wherein obtaining the image includesreceiving the image from a computing device in communication with themovable object.
 6. The method of claim 5, wherein the image is capturedby an imaging device associated with the computing device, or the imageis obtained by a first user of the computing device from a second user.7. The method of claim 5, wherein the machine-readable code is generatedby the computing device based on user interactions received at thecomputing device, the user interactions indicating one or more itemsselected from a group consisting of a destination position, a change tothe navigation data, a change to a control parameter of the movableobject, a change to a gimbal parameter, and a change to an imagingdevice parameter.
 8. The method of claim 1, wherein: the one or moreoperation parameters of the movable object are generated based on aninitial set of operation data for controlling the movable object; andone or more data items in the set of operation data from themachine-readable code have higher resolutions than one or more dataitems in the initial set of operation data.
 9. The method of claim 1,wherein: the one or more operation parameters are generated based on aninitial set of navigation data for navigating the movable object; andthe initial set of navigation data and the navigation data in the set ofoperation data from the machine-readable code correspond to distinctlocations.
 10. The method of claim 1, further comprising: assessing avalidity of the set of operation data, the set of operation dataincluding data in one or more data fields; and validating the set ofoperation data in response to determining that data in each of the oneor more data fields has a valid format and is within a valid range;wherein adjusting the one or more operation parameters includesadjusting, in response to the set of operation data having beenvalidated, the one or more operation parameters based on the set ofoperation data to control an operation of the movable object.
 11. Anunmanned aerial vehicle (UAV), comprising: a propulsion system; one ormore sensors; an imaging device comprising an image sensor and anoptical device; and one or more processors coupled to the propulsionsystem, the one or more sensors, and the imaging device, the one or moreprocessors being configured to: obtain an image including amachine-readable code configured to store a set of operation data forcontrolling the UAV, the set of operation data including navigation dataincluding one or more data items selected from a group consisting of oneor more waypoints, a longitude, a latitude, an altitude, one or morewaypoints of a path, and one or more points of interest; process theimage to retrieve the machine-readable code and the set of operationdata; and adjust one or more operation parameters of the UAV based onthe set of operation data to control an operation of the UAV.
 12. TheUAV of claim 11, wherein: the imaging device is configured to capturethe image; and the one or more processors are further configured toobtain the image from the image sensor.
 13. The UAV of claim 12, whereinthe imaging device is further configured to capture the image that isdisplayed on or projected by a projector onto an object, the objectincluding at least one of a sign, a billboard, or ground.
 14. The UAV ofclaim 11, wherein the machine-readable code includes a two-dimensionalquick response (QR) code.
 15. The UAV of claim 11, wherein one or moreprocessors are further configured to receive the image from a computingdevice in communication with the UAV.
 16. The UAV of claim 15, whereinthe image is captured by an imaging device associated with the computingdevice, or the image is obtained by a first user of the computing devicefrom a second user.
 17. The UAV of claim 15, wherein themachine-readable code is generated by the computing device based on userinteractions received at the computing device, the user interactionsindicating one or more items selected from a group consisting of adestination position, a change to the navigation data, a change to acontrol parameter of the UAV, a change to a gimbal parameter, and achange to an imaging device parameter.
 18. The UAV of claim 11, wherein:the one or more processors are further configured to generate the one ormore operation parameters of the UAV based on an initial set ofoperation data for controlling the UAV; and one or more data items inthe set of operation data from the machine-readable code have higherresolutions than one or more data items in the initial set of operationdata.
 19. The UAV of claim 11, wherein: the one or more processors arefurther configured to generate the one or more operation parameters ofthe UAV based on an initial set of navigation data for navigating theUAV; and the initial set of navigation data and the navigation data inthe set of operation data from the machine-readable code correspond todistinct locations.
 20. The UAV of claim 11, wherein the one or moreprocessors are further configured to: assess a validity of the set ofoperation data, the set of operation data including data in one or moredata fields; validate the set of operation data in response todetermining that data in each of the one or more data fields has a validformat and is within a valid range; and adjust, in response to the setof operation data having been validated, the one or more operationparameters based on the set of operation data to control an operation ofthe UAV.